
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <signal.h>
 
void signal_handler(int signum) {
    printf("接收到中断信号 %d\n", signum);
    // 这里可以添加自定义处理逻辑

    //
    exit(0);
}
 
int main() {
    int count = 0;
    struct sigaction sa;
    
    // 设置信号处理器为我们自定义的函数
    sa.sa_handler = &signal_handler;
    sigemptyset(&sa.sa_mask);
    sa.sa_flags = SA_RESTART | SA_NODEFER;
    
    if (sigaction(SIGINT, &sa, NULL) == -1) {
        perror("无法安装信号处理器");
        exit(-1);
    }
    
    printf("进入循环\n");
    while (1) {
        printf("cnt=%d\n", count);
        ++count;
        sleep(1);
    }
    
    return 0;
}